﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace WcfService
{
    //**************************************************
    // Tandvårdsstöd - Projektet
    // Författare: Safin Hassan, Jan Gundersen, Ali Agha
    // Datum: 2012-03-25
    //**************************************************

    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService1
    {

        #region Metoder implementerad av Safin Hassan

        // TODO: Add your service operations here

        [OperationContract]
        System.Data.DataSet GetDataByPersonnummer(string @searchValue);

        [OperationContract]
        System.Data.DataSet GetScalarQueryMaxKortnummer();

        [OperationContract]
        System.Data.DataSet GetDataByKortnummer(string @personnummer);

        [OperationContract]
        System.Data.DataSet GetDataForhandsbedomningar();

        [OperationContract]
        bool UpdatePersoner(int Kortnummer, string Personnummer, string Förnamn, string Efternamn, string gatuadress, string postnummer, string ort,
            short Grupp, int Kontaktperson, bool Intyg_utsänt, string Kommentar, int p1, bool Avliden, bool Dubbelt_rapporterat, bool Intyg_beställt,
            string Boende, string Accepterat_munhälsobedömning, bool Dublettkort_utfärdat, DateTime Datum_för_senaste_dublettkort, string Antal_dublettkort,
            DateTime Inregistreringsdatum, DateTime Reviderat_tandvårdsintyg, bool Avförd_pga_ändrad_eller_felaktig_bedömning, string Aktuellt_anbudsområde, string Anbudsområde_före_2006, int Orginal_Id);

        [OperationContract]
        bool InsertIntoPersoner(int Kortnummer, string Personnummer, string Förnamn, string Efternamn, string gatuadress, string postnummer, string ort,
            short Grupp, int Kontaktperson, bool Intyg_utsänt, string Kommentar, int p1, bool Avliden, bool Dubbelt_rapporterat, bool Intyg_beställt,
            string Boende, string Accepterat_munhälsobedömning, bool Dublettkort_utfärdat, DateTime Datum_för_senaste_dublettkort, string Antal_dublettkort,
            DateTime Inregistreringsdatum, DateTime Reviderat_tandvårdsintyg, bool Avförd_pga_ändrad_eller_felaktig_bedömning, string Aktuellt_anbudsområde, string Anbudsområde_före_2006);



        #endregion


        #region Metoder implementerad av Jan Gundersen

        [OperationContract]
        System.Data.DataSet GetDataByPersonnrFörhandsbedömning(string @searchValue);

        [OperationContract]
        System.Data.DataSet ScalarQueryMaxlöpnummer();
        /// <summary>
        /// Avser att använda behandlaretabellen på något sätt för att hämta ut behandlares namn och behandlarkod i bakgrunden
        /// men avvaktar med det så länge ochenbart använder getDataförhandsbokning för att endast hämta behandlarkoden som
        /// en temporär lösning
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        System.Data.DataSet GetDataBehandlare();

        [OperationContract]
        System.Data.DataSet GetDataKlinikNamnBedm();

        [OperationContract]
        System.Data.DataSet GetDataBedömningstandläkare();

       /* [OperationContract]
        System.Data.DataSet GetDataFörhandsbedömningLäggTill();*/

        

        [OperationContract]
        bool InsertIntoFörhandsbedömningar(string löpnummer, DateTime ankomstdatum, string personnr, string behandlarkod, string bedömningstandläkare, DateTime sändTillBTL,
            DateTime ÅterFrånBTL, DateTime beslutsdatum, string beslutAv, DateTime återTillTandlkr, bool nödvändigTandv, bool protetik, bool MerÄn4000, bool ledAvSjukdom,
            int grupp, decimal beräknKostnad, bool godkänd, bool godkändmedförändr, bool ejGodkänd, bool makulerad, string klinik, string kommentar, bool tandvårdsIntygFinns,
            bool särskildÅtgärd);

        [OperationContract]
        System.Data.DataSet GetDataRäkningByPersonnummer(string @Personnummer);

        [OperationContract]
        System.Data.DataSet GetDataRäkningByBehandlarkod(string @Behkod);


        #endregion


        #region Metoder implementerad av Ali Agha

        //Skapar kontrakt till alla mina metoder som finns skapade i Service1-klassen för att på så vis 
        //kunna använda dem i mina formulär.
        
        [OperationContract]
        System.Data.DataSet GetDataPerson();


        [OperationContract]
        System.Data.DataSet GetDataFörhandsbedömning();

        [OperationContract]
        bool UpdateFörhandsbedömning(string löpnummer, DateTime ankomstDatum, string personnummer, string behandlarKod, string bedömningstandläkare,
            DateTime sändTillBTL, DateTime återFrånBTL, DateTime beslutsDatum, string beslutAv, DateTime återTillTandläkare, Boolean nödvändigTandvård, Boolean protetik,
            Boolean merÄn4000, Boolean ledISjukbehandling, int grupp, decimal beräknadKostnad, Boolean godkänd, Boolean godkändMedFörändring, Boolean ejGodkänd, 
            Boolean makulerad, string klinik, string kommentar, Boolean tandvårdsintygFinns, Boolean särskildÅtgärd, int id);


        [OperationContract]
        System.Data.DataSet GetDataByLöpnr(string @Löpnummer);

        [OperationContract]
        System.Data.DataSet GetDataByBehandlarkod(string @BehKodAndForNamn);

        [OperationContract]
        System.Data.DataSet GetDataByPatientPersonnummer(string @Personnummer);

        [OperationContract]
        System.Data.DataSet GetDataSalivProv();

        [OperationContract]
        System.Data.DataSet GetDataKlinikNamn();

        [OperationContract]
        System.Data.DataSet GetDataBehandlareLista();

        [OperationContract]
        System.Data.DataSet GetDataSalivByPersonNr(string @Personnummer);

        [OperationContract]
        System.Data.DataSet GetDataRäkning();

        [OperationContract]
        bool UpdateRäkning(string personnummer, string förNamn, string efterNamn, string behandlarkod,
            Boolean nödvändigVård, Boolean TSLIES, decimal bruttoKostnad, decimal erlagdPatientavgift, decimal nettoKrav,
            string antalBesök, string betaldaBesök, string frikortsBesök, string uteblivande, Boolean förhandsprövningGjord,
            DateTime InkommandeDatum, DateTime utanordnadDatum, string klinik, string förhandsbedömningLöpnr,
            decimal justeratKrav, string kommentar, Boolean makulerad, Boolean godkänd, Boolean tandvårdsIntyg,
            Boolean FHPFinns, Boolean patientLista, int nuvarandegrupp, DateTime FTVmånad, string vårdTOM, string typAvVård,
            Boolean särskildÅtgärd, int id);

        [OperationContract]
        System.Data.DataSet GetDataRäkningByPersonNrAndLöpNr(string @Searchvalue);

        [OperationContract]
        bool InsertIntoRäkning(string personnummer, string förNamn, string efterNamn, string behandlarkod,
            Boolean nödvändigVård, Boolean TSLIES, decimal bruttoKostnad, decimal erlagdPatientavgift, decimal nettoKrav,
            string antalBesök, string betaldaBesök, string frikortsBesök, string uteblivande, Boolean förhandsprövningGjord,
            DateTime InkommandeDatum, DateTime utanordnadDatum, string klinik, string förhandsbedömningLöpnr,
            decimal justeratKrav, string kommentar, Boolean makulerad, Boolean godkänd, Boolean tandvårdsIntyg,
            Boolean FHPFinns, Boolean patientLista, int nuvarandegrupp, DateTime FTVmånad, string vårdTOM, string typAvVård,
            Boolean särskildÅtgärd);

        [OperationContract]
        System.Data.DataSet GetDataByPersonNrTandRäkning(string @Searchvalue);


        #endregion

    }
}
